package com.sh.rbac.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sh.rbac.domain.dto.role.RoleAuthDTO;
import com.sh.rbac.domain.dto.role.RoleQueryDTO;
import com.sh.rbac.domain.dto.role.RoleSaveDTO;
import com.sh.rbac.domain.dto.role.RoleUpdateDTO;
import com.sh.rbac.domain.entity.Role;

/**
 * @author lucky
 * @description 针对表【sys_role(角色表)】的数据库操作Service
 * @createDate 2024-04-04 21:47:19
 */
public interface RoleService extends IService<Role> {


    /**
     * 分页查询角色列表
     *
     * @param current      当前页
     * @param limit        每页显示条数
     * @param roleQueryDTO 查询条件
     * @return 分页查询结果
     */
    Page<Role> getPage(Long current, Long limit, RoleQueryDTO roleQueryDTO);

    /**
     * 保存角色权限
     *
     * @param roleAuthDTO 角色权限保存对象
     * @return 是否保存成功
     */
    Boolean saveAuth(RoleAuthDTO roleAuthDTO);


    /**
     * 保存角色
     *
     * @param roleSaveDTO 角色保存对象
     * @return 是否保存成功
     */
    Boolean save(RoleSaveDTO roleSaveDTO);


    /**
     * 更新角色
     *
     * @param roleUpdateDTO 角色更新对象
     * @return 是否更新成功
     */
    Boolean updateById(RoleUpdateDTO roleUpdateDTO);

    /**
     * 更新角色状态
     *
     * @param id     角色id
     * @param status 状态
     * @return 是否更新成功
     */
    Boolean updateStatus(Long id, Integer status);
}
